Along with advancement of a digital technology in recent years, a lot of programmable devices are used. In the programmable devices, operations can be determined by a program after manufacture of an LSI. In an array-type processor described in Patent Document 1, which is one of the programmable devices, an application to be loaded therein is separated into a part for state transition and a part for a data bus, thereby implementing an operation of hardware with a configuration suited to each part.
As shown in FIG. 15 in Patent Document 1, a state transition management device that implements this state transition stores a state transition rule in a memory (table) within the state transition management device. Then, the state transition management device selects one of a plurality of subsequent state number candidates for a next state that are output when a state number is supplied to this memory according to an event identification code. Details of the state transition management device will be described, using an example.
FIG. 25A shows a state transition diagram to be used as an example. A numeral in a circle indicates a state number. Transition can be made to only a state indicated by an arrow. A character added to the arrow indicates a condition (event identification code) for proceeding to the arrow. In the case of FIG. 25A, when transition is set to be started from a state 0, the transition is made to a state 1 due to input of an event identification code e0. Then, three transition destinations (branches) of states 2, 3, and 4 are present for the state 1. Then, it is shown that when the event identification code e0 is supplied, the transition proceeds to the state 2, when an event identification code e1 is supplied, the transition proceeds to the state 3, and when an event identification code e2 is supplied, the transition proceeds to the state 4. Likewise, from then on, the transition is made from the state 2 to a state 5 according to the event identification code e0, and the transition is made from the state 3 to the state 5 according to the same event identification code e0. There are two states of the state 5 and a state 6 as a state next to the state 4. When the event identification code e0 is supplied, the transition is made to the state 5. When the event identification code e1 is supplied, the transition is made to the state 6. In the case of the state 5, the transition is made to the state 6 according to the event identification code e0.
Next, an example of the state transition management device that implements the state transition diagram in FIG. 25A will be shown in FIG. 25B. First, when a current state number 2501 is supplied to a memory 2502, four subsequent state number candidates are output as outputs 2503 according to the input value of the current state number 2501. One of the four subsequent state numbers is selected by a selector 2505, using an event identification code 2504, and a subsequent state number 2506 is then output. The subsequent state number 2506 becomes the current state number 2501 in a next clock cycle, and is supplied to the memory 2502 to determine a subsequent state number. Such an operation is repetitively performed. State transition is thereby continuously made.
The state transition will be described, using an operation example. First, an operation of transition to the state 1 when the event identification code e0 is supplied in the state 0, which is shown within the framework of a block 2508 in FIG. 25A will be described.
In this case, a value 0 is supplied as an input of the current state number 2501. Thus, values in a row corresponding to the value 0 in a column 2507 of the memory 2502 or the values within the framework of a block 2509 are output as the outputs 2503. Since the event identification code e0 is supplied as the event identification code 2504. Thus, a value of 1 in column e0 is selected by the selector 2505 to become a subsequent state number 2506.
Next, an operation of transition to each of the states 2, 3, and 4 when one of event identification signals e0, e1, and e2 is supplied in the state 1, shown in the framework of a block 2510 in FIG. 25A, will be described. In this case, a value 1 is supplied as an input of the current state number 2501. Thus, values in a row corresponding to the value 1 in the column 2507 of the memory 2502 or the values within the framework of a block 2511 are output as the outputs 2503. When the event identification code e0 is then supplied as the event identification code 2504, a value 2 in the e0 column is selected by the selector 2505 to become the subsequent state number 2506. When the event identification code e1 is supplied, a value 3 in an e1 column is selected by the selector 2505 to become the subsequent state number 2506. When the event identification code e2 is supplied, a value 4 in an e2 column is selected by the selector 2505 to become the subsequent state number 2506.
An operation of transition to each of the states 4 and 5, shown in the framework of a block 2512 in FIG. 25A, will be described as another example. The transition is made to the state 5 when the event identification signal e0 is supplied in the state 4. The transition is made to the state 6 when the event identification signal e1 is supplied in the state 4. In this case, the value 4 is supplied as an input of the current state number 2501. Thus, values in a row corresponding to the value 4 in the column 2507 of the memory 2502 or the values within the framework of a block 2513 are output as the outputs 2503. When the event identification code e0 is then supplied as the event identification code 2504, a value 5 in the e0 column is selected by the selector 2505 to become the subsequent state number 2506. When the event identification code e1 is supplied, a value 6 in the e1 column is selected by the selector 2505 to become the subsequent state number 2506.
In the memory that implements implementation of this state transition management device, an input of the current state number 2501 may be considered as an address input. The outputs 2503 of a plurality of subsequent number candidates may be considered as data outputs.
[Patent Document 1]
JP Patent No. 3674515, which corresponds to US Patent Publication No. US-2001/0018733A1
[Patent Document 2]
JP Patent Kokai Publication No. JP-A-3-282602